﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SQLite;
using System.Data;

namespace Data
{
    public class PersonalDataAccess
    {
        private SQLiteConnection con = DataBaseHelper.GetConnection("BDHostal.sqlite");
        private bool exitoRegistrar;
        private DataTable dt = new DataTable();
        private DataSet dataSet = new DataSet();
        public bool registrarPersonal(string numeroDocumento,string nombre,string apellido,string paisNacimiento,string sexo,string profesion,string fechaNacimiento,string email,string telefono,string celular,string notas)
        {
            using(var cmd=con.CreateCommand())
            {
                try
                {
                    con.Open();
                    cmd.CommandText = "INSERT INTO datosPersonal(numeroDocumento,nombre,apellido,paisNacimiento,sexo,profesion,fechaNacimiento,email,telefono,celular,Notas) VALUES ('" + numeroDocumento + "','" + nombre.ToLowerInvariant() + "','" + apellido.ToLowerInvariant() + "','" + paisNacimiento + "','" + sexo + "','" + profesion + "','" + fechaNacimiento + "','" + email + "','" + telefono + "','" + celular + "','" + notas + "')";
                    cmd.ExecuteNonQuery();
                    exitoRegistrar = true;

                }
                catch (SQLiteException ex)
                {

                    Console.WriteLine(ex.Message);
                    Console.WriteLine(ex.StackTrace);
                    exitoRegistrar = false;
                }
                finally
                {
                    cmd.Dispose();
                    con.Close();
                }
            }
            return exitoRegistrar;
        }
        public bool modificarDatosPersonal(string numeroDocumentoAntiguo,string numeroDocumento, string nombre, string apellido, string paisNacimiento, string sexo, string profesion, string fechaNacimiento, string email, string telefono, string celular, string notas)
        {
            using (var cmd = con.CreateCommand())
            {
                try
                {
                    con.Open();
                    cmd.CommandText = "UPDATE datosPersonal SET numeroDocumento='"+numeroDocumento+"',nombre='"+nombre+"',apellido='"+apellido+"',paisNacimiento='"+paisNacimiento+"',sexo='"+sexo+"',profesion='"+profesion+"',fechaNacimiento='"+fechaNacimiento+"',email='"+email+"',telefono='"+telefono+"',celular='"+celular+"',Notas='"+notas+"' WHERE numeroDocumento='"+numeroDocumentoAntiguo+"'";
                    cmd.ExecuteNonQuery();
                    exitoRegistrar = true;

                }
                catch (SQLiteException ex)
                {

                    exitoRegistrar = false;
                }
                finally
                {
                    cmd.Dispose();
                    con.Close();
                }
            }
            return exitoRegistrar;
        }
        public DataTable buscarDatosLimitado(string persona)
        {
            string cmd = "SELECT numeroDocumento,nombre,apellido FROM datosPersonal WHERE nombre like '%" + persona.ToLowerInvariant() + "%' OR apellido like '%" + persona.ToLowerInvariant() + "%'";
            {
                try
                {
                    con.Open();
                    SQLiteDataAdapter dataAdapter = new SQLiteDataAdapter(cmd, con);
                    dataSet.Reset();
                    dataAdapter.Fill(dataSet);
                    dt = dataSet.Tables[0];
                }
                catch (SystemException ex)
                {
                }
                finally
                {
                    con.Close();
                }
            }
            return dt;
        }
        public DataTable buscarTodosDatos(string numeroDocumento)
        {
            string cmd = "SELECT * FROM datosPersonal WHERE numeroDocumento = '" + numeroDocumento + "'";
            {
                try
                {
                    con.Open();
                    SQLiteDataAdapter dataAdapter = new SQLiteDataAdapter(cmd, con);
                    dataSet.Reset();
                    dataAdapter.Fill(dataSet);
                    dt = dataSet.Tables[0];
                }
                catch (SystemException ex)
                {
                }
                finally
                {
                    con.Close();
                }
            }
            return dt;
        }
    }
}
